package org.jeecg.modules.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.role.entity.SysRole;
import org.jeecg.modules.user.entity.SysUser;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.web.multipart.MultipartFile;

/**
 * <p>
 * 角色表 服务类
 * </p>
 *
 * @Author scott
 * @since 2018-12-19
 */
public interface ISysRoleService extends IService<SysRole> {

    /**
     * 导入 excel ，检查 roleCode 的唯一性
     *
     * @param file
     * @param params
     * @return
     * @throws Exception
     */
    Result importExcelCheckRoleCode(MultipartFile file, ImportParams params) throws Exception;

    /**
     * 删除角色
     * @param roleid
     * @return
     */
    public boolean deleteRole(String roleid);

    /**
     * 批量删除角色
     * @param roleids
     * @return
     */
    public boolean deleteBatchRole(String[] roleids);

    /**
     * 分页查询角色下用户
     * @param roleId
     * @param username
     * @param pageNo
     * @param pageSize
     * @return
     */
    IPage<SysUser> listUserIdByRoleId(String roleId, String username, Integer pageNo, Integer pageSize);

    /**
     * 创建组织超级管理员：必须在组织绑定模块后，授权需要获取开通的模块权限
     * @param approveUserId
     * @param deptId
     * @param orgId
     */
    void createAdmin(String approveUserId, String deptId, String orgId);
    SysRole getOrgAdminRole(String userId);
}
